package es.mjcotan.restfulcxfsprexample.services.impl;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import es.mjcotan.restfulcxfsprexample.dao.EmpleadoDAO;
import es.mjcotan.restfulcxfsprexample.entities.Empleado;
import es.mjcotan.restfulcxfsprexample.services.EmpleadoService;

@Path("/empleado/")
@Produces("application/json")
public class EmpleadoServiceImpl implements EmpleadoService {
	
	private static final Log LOGGER = LogFactory.getFactory().getInstance(EmpleadoServiceImpl.class);
	
	private EmpleadoDAO empleadoDao;

	
	/*
	 * (non-Javadoc)
	 * @see es.mjcotan.restfulcxfsprexample.services.EmpleadoService#getEmpleado(java.lang.String)
	 */
	@GET
	@POST
	@Path("/get/{id}")
	public Empleado getEmpleado(@PathParam("id") String id) {
		
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("--> Init getEmpleado(String); id = " + id);
		}
		Empleado toReturn;
		
		
		if (NumberUtils.isNumber(id))
			toReturn = empleadoDao.get(Long.valueOf(id));
		else 
			toReturn = null;
		
		
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("--> End getEmpleado(String); return: " + toReturn);
		}
		
		return toReturn;
	}


	public EmpleadoDAO getEmpleadoDao() {
		return empleadoDao;
	}


	public void setEmpleadoDao(EmpleadoDAO empleadoDao) {
		this.empleadoDao = empleadoDao;
	}
	
}
